<?php
/**
 * ShopEx licence
 *
 * @copyright  Copyright (c) 2005-2010 ShopEx Technologies Inc. (http://www.shopex.cn)
 * @license  http://ecos.shopex.cn/ ShopEx License
 */

function theme_widget_main_slide(&$setting,&$render){
    $setting['allimg']="";
    $setting['allurl']="";
    if($system->theme){
        $theme_dir = kernel::get_themes_host_url().'/'.$smarty->theme;
    }else{
        $theme_dir = kernel::get_themes_host_url().'/'.app::get('site')->getConf('current_theme');
    }
    if(!$setting['pic']){
        foreach($setting['img'] as $value){
            $setting['allimg'].=$rvalue."|";
            $setting['allurl'].=urlencode($value["url"])."|";
        }
    }else{
        foreach($setting['pic'] as $key=>$value){
            if($value['link']){
                if($value["url"]){
                    $value["linktarget"]=$value["url"];
                }
                $setting['allimg'].=$rvalue."|";
                $setting['allurl'].=urlencode($value["linktarget"])."|";
                $setting['pic'][$key]['link'] = str_replace('%THEME%',$theme_dir,$value['link']);
            }
        }
    }


// sorting class	
	class sorting {
		 public function array_sort_func( $a, $b=NULL ) {
		 static $keys;
			  if( $b === NULL ) return $keys = $a;
			  foreach( $keys as $k ) {
				   if( @$k[0] == '!') { // @ - ставим что бы не вылезали ошибки в хедере ( а могут быть )
						$k = substr( $k,1 );
						if( @$a[$k] !== @$b[$k] ) {
							 return strnatcmp( @$b[$k], @$a[$k] );
						}
				   }
				   else if ( @$a[$k] !== @$b[$k] ) {
						return strnatcmp( @$a[$k], @$b[$k] ); // долбанный nat чтоб было все по-человечески!
				   }
			  }
		 return 0;
		 }
	 
		 public function array_sort( &$array ) { // & - значит что мы сразу же изменяем активный массив
			  if( !$array ) return $keys;
			  $keys = func_get_args(); // получаем массив сортировки - тоесть полей сортировки может быть несколько
			  array_shift( $keys );
			  $this->array_sort_func( $keys );
			  usort( $array, array( $this, 'array_sort_func' ) );
			  return $array;
		 }
	}


 
	$sorting = new sorting;
	
	$sorting->array_sort( $setting['pic'], '!sort' ); //! - DESC , without ! - ASC

    return $setting;
}
?>
